home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / initscripts.postinst < prev    next >
Text File  |  2009-10-19  |  9KB  |  320 lines

  1. #! /bin/sh
  2. #
  3. # initscripts postinst
  4. #
  5.  
  6. set -e
  7.  
  8. case "$1" in
  9.   configure)
  10.     PREV_VER=$2
  11.     ;;
  12.   abort-upgrade|abort-remove|abort-deconfigure)
  13.     exit 0
  14.     ;;
  15. esac
  16.  
  17. umask 022
  18.  
  19. chrooted() {
  20.   if [ -r /proc/1/root ]; then
  21.     return 1
  22.   fi
  23.   return 0
  24. }
  25.  
  26. #
  27. # Initialize rcS default file.
  28. #
  29. if [ ! -f /etc/default/rcS ]
  30. then
  31.     cp -p /usr/share/initscripts/default.rcS /etc/default/rcS
  32. else
  33.     # in Ubuntu we use /var/run and /var/lock tmpfses; these are not
  34.     # optional so remove the options from /etc/default/rcS
  35.     if dpkg --compare-versions "$PREV_VER" le-nl "2.87dsf-4ubuntu9"
  36.     then
  37.         sed -i "/^RAMRUN=/d;/^RAMLOCK=/d" /etc/default/rcS
  38.     fi
  39. fi
  40.  
  41. #
  42. # In 2.86.ds1-7 the "single" script was moved.
  43. # We have to remove the old links _before_ we install new ones.
  44. #
  45. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-7"
  46. then
  47.     update-rc.d -f single remove >/dev/null 2>&1 || :
  48. fi
  49.  
  50. # In 2.86.ds1-16, the mtab.sh and hostname.sh scripts were moved.
  51. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-16"
  52. then
  53.     update-rc.d -f mtab.sh remove >/dev/null 2>&1 || :
  54.     update-rc.d -f hostname.sh remove >/dev/null 2>&1 || :
  55. fi
  56.  
  57. # In 2.86.ds1-21, the sendsigs script were moved, and in 2.86.ds1-35
  58. # it was moved back.
  59. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-35"
  60. then
  61.     update-rc.d -f sendsigs remove >/dev/null 2>&1 || :
  62. fi
  63.  
  64. # In 2.86.ds1-56ubuntu1, the waitnfs.sh was renamed to mountnfs.sh to be in
  65. # sync with Debian again.
  66. if dpkg --compare-versions "$PREV_VER" le-nl "2.86.ds1-56ubuntu1"
  67. then
  68.     update-rc.d -f waitnfs.sh remove >/dev/null 2>&1 || :
  69. fi
  70.  
  71. #
  72. # In 2.87dsf-2 the "mountoverflowtmp" script was dropped
  73. # from runlevels 0 and 6.
  74. # We have to remove the old links _before_ we install new ones.
  75. #
  76. if dpkg --compare-versions "$PREV_VER" lt "2.87dsf-2" ; then
  77.     update-rc.d -f mountoverflowtmp remove >/dev/null 2>&1 || :
  78. fi
  79.  
  80. # In 2.87dsf-4ubuntu1, the bootlogs.sh was renamed to bootlogs to be in
  81. # sync with Debian again.
  82. if dpkg --compare-versions "$PREV_VER" le-nl "2.87dsf-4ubuntu1"
  83. then
  84.     update-rc.d -f bootlogs.sh remove >/dev/null 2>&1 || :
  85. fi
  86.  
  87. # In 2.87dsf-4ubuntu2, we begin migrating to Upstart jobs, so all of
  88. # these get removed.
  89. if dpkg --compare-versions "$PREV_VER" le-nl "2.87dsf-4ubuntu2"
  90. then
  91.     update-rc.d -f hostname.sh remove >/dev/null 2>&1 || :
  92.     update-rc.d -f mountkernfs.sh remove >/dev/null 2>&1 || :
  93.     update-rc.d -f mountdevsubfs.sh remove >/dev/null 2>&1 || :
  94.     update-rc.d -f checkroot.sh remove >/dev/null 2>&1 || :
  95.     update-rc.d -f mtab.sh remove >/dev/null 2>&1 || :
  96.     update-rc.d -f checkfs.sh remove >/dev/null 2>&1 || :
  97.     update-rc.d -f mountall.sh remove >/dev/null 2>&1 || :
  98.     update-rc.d -f mountall-bootclean.sh remove >/dev/null 2>&1 || :
  99.     update-rc.d -f mountoverflowtmp remove >/dev/null 2>&1 || :
  100.     update-rc.d -f mountnfs.sh remove >/dev/null 2>&1 || :
  101.     update-rc.d -f mountnfs-bootclean.sh remove >/dev/null 2>&1 || :
  102.     update-rc.d -f bootmisc.sh remove >/dev/null 2>&1 || :
  103.     update-rc.d -f bootlogs remove >/dev/null 2>&1 || :
  104.     update-rc.d -f rmnologin remove >/dev/null 2>&1 || :
  105. fi
  106.  
  107.  
  108. #
  109. # Okay, we could do this with update-rc.d, but that would probably
  110. # be pretty slow. This way we win some speed.
  111. # DO NOT FOLLOW THIS EXAMPLE IN OTHER PACKAGES.
  112. #
  113. # Links in runlevel S
  114. #
  115. #update-rc.d bootlogd               start 05 S . >/dev/null || exit $?
  116. update-rc.d urandom                start 55 S . start 30 0 6 . >/dev/null || exit $?
  117. #
  118. # Links in runlevels other than S
  119. #
  120. update-rc.d halt                   start 90 0 . >/dev/null || exit $?
  121. update-rc.d reboot                 start 90 6 . >/dev/null || exit $?
  122. update-rc.d umountroot             start 60 0 6 . >/dev/null || exit $?
  123. update-rc.d umountfs               start 40 0 6 . >/dev/null || exit $?
  124. update-rc.d umountnfs.sh           start 31 0 6 . >/dev/null || exit $?
  125. update-rc.d sendsigs               start 20 0 6 . >/dev/null || exit $?
  126.  
  127. update-rc.d killprocs              start 30 1 . >/dev/null || exit $?
  128. update-rc.d single                 start 90 1 . >/dev/null || exit $?
  129. update-rc.d ondemand               start 99 2 3 4 5 . >/dev/null || exit $?
  130. update-rc.d rc.local               start 99 2 3 4 5 . >/dev/null || exit $?
  131. #update-rc.d stop-bootlogd-single   start 99 S . >/dev/null || exit $?
  132. #update-rc.d stop-bootlogd          start 99 2 3 4 5 . >/dev/null || exit $?
  133.  
  134. #
  135. # Remove scripts that were left behind by older glibc (<< 2.3.2.ds1-12)
  136. # versions. We have the same functionality in mount{kern,devsub}fs.sh 
  137. #
  138. #
  139. # In 2.86.ds1-10 the "mountvirtfs" script was replaced by
  140. # mountkernfs.sh and mountdevsubfs.sh.  It was removed completely in
  141. # 2.86.ds1-16.
  142. #
  143. for F in mountkernfs devpts.sh mountvirtfs
  144. do
  145.     rm -f /etc/init.d/$F
  146.     update-rc.d $F remove >/dev/null 2>&1 || :
  147. done
  148.  
  149. #
  150. # Create /var/run and /var/lock on the root partition to make sure
  151. # they are available.
  152. # If mount fail (like in a vserver environment), just clean up and ignore
  153. # it.
  154. #
  155. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-22" && ! chrooted
  156. then
  157.     # We need to quickly bind / to another location so we can make them
  158.     # just in case /var is a mountpoint or a symlink to one.
  159.     mkdir -p /.root
  160.     if mount -n --bind / /.root ; then
  161.         if [ -L /.root/var ] && [ ! -d /.root/var ] ; then
  162.             # No use trying if /var is a relative symlink.  It is not
  163.             # going to work.
  164.             :
  165.         else
  166.             mkdir -p /.root/var/run /.root/var/lock
  167.         fi
  168.         umount /.root
  169.     fi
  170.     rmdir /.root
  171. fi
  172.  
  173. #
  174. # When installing for the first time or upgrading from version before
  175. # 2.86.ds1-27, a reboot is needed to make the /lib/init/rw/ tmpfs
  176. # available.  Flag this using notify-reboot-required.  Not mounting it
  177. # here as it creates problem for debootstrap, vservers, pbuilder and
  178. # cowbuilder.
  179. #
  180. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-27" \
  181.  && [ -x /usr/share/update-notifier/notify-reboot-required ]; then
  182.     /usr/share/update-notifier/notify-reboot-required
  183. fi
  184.  
  185. #
  186. # Create mount point for spufs, and create spu system group
  187. #
  188. if mountpoint -q /proc && grep -qs '^cpu.*Cell' /proc/cpuinfo; then
  189.        if ! getent group spu >/dev/null; then
  190.            # the adduser package is priority important; cannot use addgroup
  191.            groupadd -K GID_MAX=1000 spu
  192.        fi
  193.        mkdir -p /spu
  194.        if ! mountpoint -q /spu; then
  195.            # No need to fail configuration if this isn't possible. Mount
  196.            # will still display an error. See LP #261490 and #251593.
  197.            mount -t spufs -ogid=spu spufs /spu || true
  198.        fi
  199. fi
  200.  
  201. #
  202. # Create initial log files
  203. #
  204. [ "$PREV_VER" ] || chmod 755 /var/log/fsck || :
  205. for F in /var/log/dmesg /var/log/boot /var/log/fsck/checkroot /var/log/fsck/checkfs
  206. do
  207.     if [ ! -f "$F" ] && touch "$F" >/dev/null 2>&1
  208.     then
  209.         echo "(Nothing has been logged yet.)" >| "$F"
  210.         chown root:adm "$F"
  211.         chmod 640 "$F"
  212.     fi
  213. done
  214.  
  215. #
  216. # Set up nologin symlink so that dynamic-login-disabling will work
  217. # (when DELAYLOGIN is set to "yes")
  218. #
  219. if [ ! -L /etc/nologin ] && [ ! -e /etc/nologin ]
  220. then
  221.     rm -f /var/lib/initscripts/nologin
  222.     ln -s /var/lib/initscripts/nologin /etc/nologin
  223. fi
  224.  
  225. #
  226. # Set up motd stuff, putting variable file in /var/run/
  227. #
  228. if [ ! -f /etc/motd.tail ]
  229. then
  230.     if [ -f /etc/motd ]
  231.     then
  232.         sed 1d /etc/motd > /etc/motd.tail
  233.         [ -s /etc/motd.tail ] || rm -f /etc/motd.tail
  234.     fi
  235. fi
  236. if [ ! -f /var/run/motd ]
  237. then
  238.     if [ -f /etc/motd ]
  239.     then
  240.         cat /etc/motd > /var/run/motd
  241.     else
  242.         :>/var/run/motd
  243.     fi
  244. fi
  245. if [ ! -L /etc/motd ]
  246. then
  247.     [ -f /etc/default/rcS ] && . /etc/default/rcS
  248.     if [ "$EDITMOTD" = no ]
  249.     then
  250.         cat /var/run/motd > /etc/motd.static
  251.         ln -sf motd.static /etc/motd
  252.     else
  253.         ln -sf /var/run/motd /etc/motd
  254.     fi
  255. fi
  256.  
  257. #
  258. # Mount kernel virtual filesystems...not.
  259. # This causes problems in pbuilder.
  260. #
  261. #
  262. #if [ -x /etc/init.d/mountkernfs.sh ]
  263. #then
  264. #    if which invoke-rc.d >/dev/null 2>&1
  265. #    then
  266. #        invoke-rc.d mountkernfs.sh start || :
  267. #    else
  268. #        /etc/init.d/mountkernfs.sh start
  269. #    fi
  270. #fi
  271.  
  272. #
  273. # Create /dev/pts, /dev/shm directories
  274. #
  275. if [ "$(uname -s)" = Linux ]
  276. then
  277.     #
  278.     # Only create /dev/{pts,shm} if /dev is on the
  279.     # root file system. If some package has mounted a
  280.     # seperate /dev (ramfs from udev, devfs) it is
  281.     # responsible for the presence of those subdirs.
  282.     # (it is OK for these to fail under fakechroot)
  283.     #
  284.     if ! mountpoint -q /dev
  285.     then
  286.         [ -d /dev/pts ] || { mkdir --mode=755 /dev/pts ; chown root:root /dev/pts || [ "$FAKECHROOT" = true ]; }
  287.         [ -d /dev/shm ] || { mkdir --mode=755 /dev/shm ; chown root:root /dev/shm || [ "$FAKECHROOT" = true ]; }
  288.     fi
  289. fi
  290.  
  291. #
  292. # Create /etc/rc.local on first time install and when upgrading from
  293. # versions before "2.86.ds1-16"
  294. #
  295. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-16"
  296. then
  297.     if [ ! -e /etc/rc.local ]; then
  298.         cat << EOF > /etc/rc.local
  299. #!/bin/sh -e
  300. #
  301. # rc.local
  302. #
  303. # This script is executed at the end of each multiuser runlevel.
  304. # Make sure that the script will "exit 0" on success or any other
  305. # value on error.
  306. #
  307. # In order to enable or disable this script just change the execution
  308. # bits.
  309. #
  310. # By default this script does nothing.
  311.  
  312. exit 0
  313. EOF
  314.         # make sure it's enabled by default.
  315.         chmod 755 /etc/rc.local
  316.     fi
  317. fi
  318.  
  319. :
  320.